package models

import "time"

// ProductComment 商品评价表
type ProductComment struct {
	Id         int64     `json:"id" xorm:"pk autoincr"`
	UserId     int64     `json:"user_id" xorm:"not null comment('用户ID') index"`
	ProductId  string    `json:"product_id" xorm:"not null comment('商品ID') index"`
	OrderId    int64     `json:"order_id" xorm:"not null comment('订单ID') index"`
	Content    string    `json:"content" xorm:"varchar(500) not null default '' comment('评价内容')"`
	Images     []string  `json:"images" xorm:"json not null comment('评价图片')"`
	Score      int       `json:"score" xorm:"tinyint(1) not null default 5 comment('综合评分：1-5')"`
	Anonymous  int       `json:"anonymous" xorm:"tinyint(1) not null default 0 comment('是否匿名：0否 1是')"`
	ReplyCount int       `json:"reply_count" xorm:"not null default 0 comment('回复数')"`
	LikeCount  int       `json:"like_count" xorm:"not null default 0 comment('点赞数')"`
	Status     int       `json:"status" xorm:"tinyint(1) not null default 1 comment('状态：0隐藏 1显示')"`
	TagRatings []TagRate `json:"tag_ratings" xorm:"json not null comment('标签评分')"`
	UpdateTime time.Time `json:"update_time" xorm:"not null updated comment('更新时间')"`
	CreateTime time.Time `json:"create_time" xorm:"not null created comment('创建时间')"`
}

// TagRate 标签评分
type TagRate struct {
	TagId   string `json:"tag_id"`   // 标签ID
	TagName string `json:"tag_name"` // 标签名称
	Score   int    `json:"score"`    // 评分：1-5
}

// TableName 表名
func (ProductComment) TableName() string {
	return "product_comment"
}

// CommentTag 评价标签表
type CommentTag struct {
	Id         string    `json:"id" xorm:"varchar(36) pk comment('标签ID(UUID)')"` // 使用UUID作为主键
	Name       string    `json:"name" xorm:"varchar(50) not null comment('标签名称')"`
	Sort       int       `json:"sort" xorm:"not null default 0 comment('排序值')"`
	Status     int       `json:"status" xorm:"tinyint(1) not null default 1 comment('状态:0禁用 1启用')"`
	UpdateTime time.Time `json:"update_time" xorm:"not null updated comment('更新时间')"`
	CreateTime time.Time `json:"create_time" xorm:"not null created comment('创建时间')"`
}

// TableName 表名
func (CommentTag) TableName() string {
	return "comment_tag"
}
